//******************************************************************************
// Copyright (C) 1999 Jim Wanner and the SourceMonitor team.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
//******************************************************************************

#pragma once

#include <QDialog>
#include "options.h"

namespace Ui
{
    class SGOptions;
}

namespace smos
{
    namespace smgui
    {
        class SGOptions : public QDialog
        {
            Q_OBJECT

        public:
            /**
             * @brief Default constructor
             *
             * @param parent
             */
            explicit SGOptions(QWidget *parent, smos::smcore::Options *options);
            /**
             * @brief Default desctructor
             *
             */
            ~SGOptions(void);

        private slots:
            /**
             * @brief Called when button 'General - ...' is triggered
             *
             */
            void on_btnEditor_clicked(void);

        private:
            Ui::SGOptions *ui;

            /**
             * @brief Temporary options object
             *
             */
            smos::smcore::Options *m_options = nullptr;

            /**
             * @brief Called for initialization
             *
             */
            void dialogInit(void);
        };
    }
}
